package main

import (
	"encoding/json"
	//"fmt"
	"io/ioutil"
	"os"
)

type MysqlOPT struct {
	Host   string `json:"host"`
	Port   int    `json:"port"`
	User   string `json:"user"`
	Passwd string `json:"passwd"`
	DBName string `json:"dbname"`
}

type SQLite3OPT struct {
	DBFile string `json:"dbfile"`
	DBName string `json:"dbname"`
}

type Config struct {
	TCloudSecretID  string     `json:"tcloudSecretId"`  //腾讯云账号的SecretId
	TCloudSecretKey string     `json:"tcloudSecretKey"` //腾讯云账号的SecretKey
	SpiderDuration  int        `json:"spiderDuration"`  //爬取数据时间间隔
	NoticeRate      int        `json:"noticeRate"`      //发短信提醒利率下限
	PhoneNumberSet  []string   `json:"phoneNumbers"`    //电话号码
	LogFile         string     `json:"logFile"`         //日志文件
	LogLevel        int        `json:"logLevel"`        //日志级别  0--Debug, 1--Info, 2--Warn, 3--Error
	PersistenceType int        `json:"persistencetype"` //持久化方式，1--mysql，2--sqlite3
	MysqlOpt        MysqlOPT   `json:"mysqlopt"`        //mysql参数
	Sqlite3Opt      SQLite3OPT `json:"sqlite3opt"`      //sqlite3参数
}

var conf Config

func conf_init() {
	config_path := getEnvDefault("CONFIG_PATH", ".")
	data, err := ioutil.ReadFile(config_path + "/config.json")
	if err != nil {
		//fmt.Println("ReadFile failed", err)
		panic(err)
	}
	json.Unmarshal(data, &conf)
}

func getEnvDefault(key, defVal string) string {
	val, ex := os.LookupEnv(key)
	if !ex {
		return defVal
	}
	return val
}
